#!/bin/bash
#      MoverU script
#   Opciones y Parámetros
#
# • Parámetro 1 (obligatorio): origen + nombre del archivo a copiar
# • Parámetro 2 (obligatorio): destino
# • Parámetro 3 (opcional): comando que la invoca

#Funcion que elimina la ruta del archivo, dejando solamente nombre y extension
function sinRuta(){
  echo $1 | sed 's|.*/\([^/]*\)$|\1|'     #Tomo el nombre del archivo sin la ruta
}

function soloRuta(){
  echo $1 | sed 's|^\(.*/\)\([^/]*\)$|\1|'     #Tomo el nombre de la ruta del archivo
}

#LoguearU -e 

######################################################
#     COMIENZA EL SCRIPT                             #
######################################################
#
######################################################
#  CONTROLO QUE ESTEN TODOS LOS ARGUMENTOS           #
######################################################

if  [ $# -gt 3 -o $# -lt 2 ] ;then
    #echo "Falta un argumento"
    ./LoguerU.sh -e 300
    exit 300
fi

CONTADOR=0
ARCHIVO_ORIGEN=$1
DESTINO=$2
INVOCANTE=$3
GRUPO=`pwd`

ARCHIVO=`sinRuta "$ARCHIVO_ORIGEN"`
ORIGEN=`soloRuta "$ARCHIVO_ORIGEN"`

######################################################
# CHEQUEO QUE EXISTAN LOS DIRECTORIOS Y EL ARCHIVO   #
######################################################

if [ ! -d "$ORIGEN" ] ; then 
  #echo "No existe el directorio de origen "$ORIGEN
  ./LoguearU.sh -i "No existe el directorio de origen "$ORIGEN
  exit 301
else
    if [ ! -e "$ORIGEN/$ARCHIVO" ] ; then 
	#echo "No existe el archivo "$ARCHIVO" en directorio de origen "$ORIGEN
	./LoguearU.sh -e 303
	exit 303
    fi
fi
if [ ! -d "$DESTINO" ]; then
    #echo "No existe el directorio destino "$DESTINO
    ./LoguearU.sh -e 302
    exit 302  
fi

######################################################
# MOVER                                              #
######################################################
# Origen distinto a destino, y en destino no hay un archivo con el mismo nombre

#Verificar que el archivo exista en el origen, y que no exista en el destino

if [ "$ORIGEN" != "$DESTINO" ] ; then

     # echo "Los directorios son distintos, intento mover el archivo"
# MOVER ESTANDARD
      if  [ ! -e "$DESTINO/$ARCHIVO.0" ] ; then
	    #echo "existe en origen, pero no en destino"
	    #mv "$1" `echo $1 | sed 's/ /_/g'`
	    mv "$ORIGEN/$ARCHIVO" "$DESTINO/$ARCHIVO."$CONTADOR
      else 
# MOVER DUPLICADO
	#echo "existe en origen, y existe en destino"
	CONTADOR=`ls -r $DESTINO | grep "^$ARCHIVO" | wc -l` 
	mv "$ORIGEN/$ARCHIVO" "$DESTINO/$ARCHIVO."$CONTADOR
      fi
else
  #echo "Los directorios son iguales"
  ./LoguearU.sh -i 304
  exit 304
fi

